Selecting communication link between client and server

ABSTRACT

A client is coupled to a modem pool and a server by a communication link in a wide area network. The client allows a user to browse the World Wide Web in response to user inputs entered entirely from a remote control device using a television set as a display device. The communication link to the client is shared by a telephone circuit at the client end of the link. A disruption in communication with the server may occur due to a Call Waiting signal caused by an incoming telephone call. The incoming call includes Caller ID information. In response to such a disruption, communication with the server is terminated. After pausing for a predetermined period of time, the client automatically re-establishes communication with the server if the line is clear. Upon reconnecting to the server, the client accesses a “White Pages” telephone directory Web site on a remote server. Using the number provided in the Caller ID information, the client looks up the name of the caller from the directory and stores the number and the corresponding name. Each time an incoming call is subsequently received from that number, the client displays the name of the calling party to the user as the call is received.

RELATED APPLICATIONS

This is a continuation of U.S. patent application Ser. No. 09/107,063,filed on Jun. 30, 1998, now U.S. Pat. No. 6,308,221 entitled, “SelectingCommunication Link Between Client and Server,” which is a divisional ofU.S. patent application Ser. No. 08/660,087, filed Jun. 3, 1996, nowU.S. Pat. No. 5,896,444, issued Apr. 20, 1999, entitled, “Method andApparatus for Managing Communications Between a Client and a Server in aNetwork,” which is hereby incorporated by reference.

BACKGROUND OF THE INVENTION

1. The Field of the Invention

The present invention pertains to the field of client-server computernetworking. More particularly, the present invention relates to a methodand apparatus for providing communications between a client and a serverin a computer network.

2. The Prior State of the Art

The number of homes and businesses using personal computers hasincreased substantially in recent years. Along with this increase hascome an explosion in the use of the Internet, and particularly in theuse of the World-Wide Web (“the Web”). The Web is a collection offormatted hypertext pages located on numerous computers around the worldthat are logically connected by the Internet. Advances in networktechnology, particularly software for providing user interfaces to theWeb (“Web browsers”), have made the Web accessible to a large segment ofthe population. However, despite the growth in the development and useof the Web, many people are still unable to take advantage of thisimportant resource.

Access to the Web has thus far been limited mostly to people who haveaccess to a personal computer. However, many people cannot afford thecost of even a relatively inexpensive personal computer, while othersare either unable or unwilling to learn the basic computer skills thatare required to access the Web. Furthermore, Web browsers in the priorart generally do not provide the degree of user-friendliness desired bysome people, and many computer novices do not have the patience to learnhow to use the software. Therefore, it would be desirable to provide aninexpensive means by which a person can access the Web without the useof a personal computer. In particular, it would be desirable for aperson to be able to access the Web pages using an ordinary televisionset and a remote control, so that the person feels more as if he or sheis simply changing television channels, rather than utilizing a complexcomputer network.

Computer systems often communicate data with each other over largedistances using standard telephone lines (also known as “POTS,” forPlain Old Telephone Service). Often a computer does not have a telephoneline dedicated solely for its own use, however. Instead, a computeroften uses a telephone line that is also used for standard telephonevoice communication. Such dual use of the telephone line can causeproblems for computers. For example, many conventional telephoneservices provide a feature known as “Call Waiting,” which notifies aperson involved in a telephone conversation when there is anotherincoming call on that line. The person receiving the new call generallyis notified by an audible tone caused by a Call Waiting signal. Inresponse, the person can either switch to the other call withoutdisconnecting the call already in progress (a technique sometimes called“flashing”) or simply ignore the new call. However, a Call Waitingsignal can severely disrupt data communications if it is received whilea computer is using the line.

Although some communications software provides the ability to disablethe Call Waiting signal, doing so has the disadvantage that thecomputer's user generally has no way of knowing when someone is tryingto reach him by telephone. Hence, it would be desirable to avoid severedisruptions without disabling the Call Waiting capability, particularlywhen browsing the Web.

Prior art systems that have accommodated Call Waiting during modemcommunications have done so only in client-to-client communications, andhave only handled the case of both clients and modems being programmedto handle a Call Waiting interruption. Examples of such systems are avoice-over-data modem designed by Phylon, Inc., of Fremont, Calif., anda data-only modem designed by Catapult Entertainment of Cupertino,Calif. Both products are designed for video game play over a modem, andboth handle Call Waiting interruptions by detecting the interruption,signaling the other client of the condition, and then both clientsterminating the phone connection to allow the incoming call to beanswered. When the call is completed, one modem dials the other toresume game play.

These two systems do not handle a more difficult condition: that of aclient modem that is designed to handle a Call Waiting interruptionwhich is dialed into a server modem that is not. For example, such aclient modem might dial into a modem pool, such as that providingInternet access, which was designed using conventional modems. Sincesuch conventional modems were designed with the assumption that dial-upwould be through a phone connection that was not to be periodicallyinterrupted by Call Waiting, they do not support the signaling andreconnect protocols that allowed the prior art video game modems toresume a connection smoothly after a Call Waiting interruption.

Unfortunately, the vast majority of server modems in use in the worldtoday are conventional modems designed with the assumption that thedial-up is through a connection not periodically interrupted by CallWaiting. Thus, as a practical matter, the prior art video game modems,which rely on the system on the other side of the phone connection asincluding a Call Waiting aware modem and client, do not handle aclient-server modem connection that is interrupted by Call Waiting.

In addition to the Call Waiting feature, some telephone services providea feature known as Caller ID. Caller ID provides a person who receives atelephone call and who has the proper equipment with the phone numberfrom which an incoming call originates. This service can be quite usefulwhen the person receiving the call recognizes the number. However,people sometimes receive telephone calls originating from telephonenumbers with which they are not familiar. Therefore, it would bedesirable to provide a Caller ID subscriber with more detailedinformation regarding the source of an incoming call. It would furtherbe desirable to provide such information to a subscriber who is usingthe telephone line to browse the Web at the time the call is received.

SUMMARY AND OBJECTS OF THE INVENTION

In a client system communicating with a server system over acommunication link, a method is provided of responding to a disruptionin communication with the server system. The communication link includesa telephone line. In response to the disruption, the client terminatescommunication with the server. The client then established an on-hookcondition on the telephone line and waits for a ring signal.

Other features of the present invention will be apparent from theaccompanying drawings and from the detailed description which follows.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and notlimitation in the figures of the accompanying drawings, in which likereferences indicate similar elements and in which:

FIG. 1 illustrates several client systems connected to a server systemin a network.

FIG. 2A illustrates a client system for browsing the World-Wide Web.

FIG. 2B is a block diagram of an electronics unit of the client system.

FIG. 3 illustrates telephones, a client system, and a standard personalcomputer sharing one telephone line.

FIG. 4 illustrates the functional relationship between hardware andsoftware in the client system.

FIG. 5 is a flow diagram illustrating a routine for handling aninterruption in communication in the client system.

FIG. 6 is a flow diagram illustrating a routine for responding to acall-waiting signal.

FIG. 7 is a flow diagram illustrating a routine for determining a nameassociated with a phone number derived from Caller ID information.

FIG. 8 is a flow diagram illustrating a routine used by a client systemfor selectively notifying a user of an incoming telephone call.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A method and apparatus are described for managing communications betweena client and a server in a computer network. In the followingdescription, for purposes of explanation, numerous specific details areset forth in order to provide a thorough understanding of the presentinvention. It will be evident, however, to one skilled in the art thatthe present invention may be practiced without these specific details.In other instances, well-known structures and devices are shown in blockdiagram form in order to avoid unnecessarily obscuring the presentinvention.

The present invention includes various steps, which will be describedbelow. The steps can be embodied in machine-executable instructions,which can be used to cause a general-purpose or special-purposeprocessor programmed with the instructions to perform the steps.Alternatively, the steps of the present invention might be performed byspecific hardware components that contain hardwired logic for performingthe steps, or by any combination of programmed computer components andcustom hardware components.

The present invention is included in a system, known as WebTV™, forproviding a user with access to the Internet. A user of a WebTV™ clientgenerally accesses a WebTV™ server via a direct-dial telephone (POTS,for “plain old telephone service”), ISDN (Integrated Services DigitalNetwork), or other similar connection, in order to browse the Web, sendand receive electronic mail (e-mail), and use various other WebTV™network services. In the preferred embodiment, the WebTV™ networkservices are provided by WebTV™ servers using software residing withinthe WebTV™ servers in conjunction with software residing within a WebTV™client.

FIG. 1 illustrates a basic configuration of the WebTV™ network accordingto one embodiment. A number of WebTV™ clients 1 are coupled to a modempool 2 via direct-dial, bi-directional data connections 29, which may betelephone (POTS, i.e., “plain old telephone service”), ISDN (IntegratedServices Digital Network), or any other similar type of connection. Themodem pool 2 is coupled typically through a router, such as thatconventionally known in the art, to a number of remote servers 4 via aconventional network infrastructure 3, such as the Internet. The WebTV™system also includes a WebTV server 5, which specifically supports theWebTV™ clients 1. The WebTV™ clients 1 each have a connection to theWebTV™ server 5 either directly or through the modem pool 2 and theInternet 3. Note that the modem pool 2 is a conventional modem pool,such as those found today throughout the world providing access to theInternet and private networks.

Note that in this description, in order to facilitate explanation theWebTV™ server 5 is generally discussed as if it were a single device,and functions provided by the WebTV™ services are generally discussed asbeing performed by such single device. However, the WebTV™ server 5 mayactually comprise multiple physical and logical devices connected in adistributed architecture, and the various functions discussed belowwhich are provided by the WebTV™ services may actually be distributedamong multiple WebTV™ server devices.

FIG. 2A illustrates a WebTV™ client 1. The WebTV™ client 1 includes anelectronics unit 10 (hereinafter referred to as “the WebTV™ box 10”), anordinary television set 12, and a remote control 11. In an alternativeembodiment of the present invention, the WebTV™ box 10 is built into thetelevision set 12 as an integral unit. The WebTV™ box 10 includeshardware and software for providing the user with a graphical userinterface, by which the user can access the WebTV™ network services,browse the Web, send e-mail, and otherwise access the Internet.

The WebTV™ client 1 uses the television set 12 as a display device. TheWebTV™ box 10 is coupled to the television set 12 by a video link 6. Thevideo link 6 is an RF (radio frequency), S-video, composite video, orother equivalent form of video link. The communication link 29 betweenthe WebTV™ box 10 and the server 5 is either a telephone (POTS)connection 29 a or an ISDN connection 29 b. The WebTV™ box 10 receivesAC (alternating current) power through an AC power line 7.

Remote control 11 is operated by the user in order to control the WebTV™client 1 in browsing the Web, sending e-mail, and performing otherInternet-related functions. The WebTV™ box 10 receives commands fromremote control 11 via an infrared (IR) communication link. Inalternative embodiments, the link between the remote control 11 and theWebTV™ box 10 may be RF or any equivalent mode of transmission.

FIG. 2B is a block diagram of the internal features of the WebTV™ box10. Operation of the WebTV™ client 1 is controlled by a centralprocessing unit (CPU) 21 which is coupled to an Application-SpecificIntegrated Circuit (ASIC) 20. The CPU 21 executes software designed toimplement features of the present invention. ASIC 20 contains circuitrywhich may be used to implement certain features provided by the WebTV™client 1. ASIC 20 is coupled to an audio digital-to-analog converter 25which provides audio output to television 12. In addition, ASIC 20 iscoupled to a video encoder 26 which provides video output to televisionset 12. An IR interface 24 detects IR signals transmitted by remotecontrol 11 and, in response, provides corresponding electrical signalsto ASIC 20. A standard telephone modem 27 and an ISDN modem 30 arecoupled to ASIC 20 to provide connections 29 a and 29 b, respectively,to the modem pool 2 and, via the Internet 3, to the remote servers 4.Note that the WebTV™ box 10 also may include a cable television modem(not shown).

Also coupled to ASIC 20 is Read-Only Memory (ROM) 22, which providesstorage of program code for implementing the application software to beexecuted by the WebTV™ box 10. Note that ROM 22 may be a programmableROM (PROM) or any form of erasable PROM (EPROM) or Flash memory. Alsocoupled to ASIC 20 is Random Access Memory (RAM) 23. A mass storagedevice 28 may optionally be provided and coupled to ASIC 20. The massstorage device 28 may be used to input software or data to the client orto download software of data received over network connection 29. Themass storage device 28 includes any suitable medium for storingmachine-executable instructions, such as magnetic disks, optical disks,and the like.

FIG. 3 illustrates a WebTV™ client 1 implemented in a home 15 accordingto one exemplary embodiment. Within the home 15, the WebTV™ client 1shares the telephone line 29 a with two conventional telephone sets(“extensions”) 10 and a modem of a personal computer 12. Accordingly,the telephone line 29 a is used for both data communication (by WebTV™client 1 and the personal computer 12) and voice communication atdifferent times. The telephone line 29 a corresponds to a singletelephone number within the home 15.

As mentioned above, the WebTV™ box 10 includes application softwareincluding a Web browser. Referring now to FIG. 2A, the above-mentionedapplication software 31 operates in conjunction with operating system(OS) software 32. The OS software 32 includes various device drivers andotherwise provides an interface between the application software 31 andthe system hardware components 40 (i.e., the elements illustrated inFIG. 1C).

In the preferred embodiment, the application software 31 and OS software32 are generally stored in ROM 22. It will be recognized, however, thateither or both of application software 31 and OS software 32 can bestored on any suitable storage medium, including magnetic or opticalstorage devices.

Assume now that the WebTV™ client 1 is implemented in a configuration asshown in FIG. 3. That is, the WebTV™ client 1 shares a single telephoneline 29 a with one or more standard telephone extensions in a home 15.Assume further that telephone service provided to the home 15 includesthe Call Waiting and Caller ID services. Hence, an incoming telephonecall received at the home 15 while the user is browsing the Web usingthe WebTV™ client 1 will be indicated by reception of a Call Waitingsignal. The Call Waiting signal will cause disruptions in datacommunications on the telephone line. Some prior art client-to-servermodems treat a disruption such as a Call Waiting signal as an errorcondition and either attempt to maintain the data connection or simplylose the connection. Other prior art client-to-server modems simplydisable the Call Waiting signal. A disadvantage of both of theseapproaches is that the user of the Web browser is typically left unawareof the incoming call. The present invention, however, overcomes thisdisadvantage.

Any interruption in data communication is essentially treated as a pausecondition by the WebTV™ client 1. Specifically, in response to anyinterruption in data communication, including a Call Waiting signal, theclient 1 automatically disconnects from the modem pool and thenautomatically reconnects to the modem pool 2 at a later time whilemaintaining the user's browsing state. Referring now to FIG. 5, if aninterruption in communication is detected by the WebTV™ client 1 (step501) while the client 1 is in contact with the WebTV™ server 5 (or anyother server), then the client 1 saves information describing thecurrent browsing status to memory (RAM) 23 (step 502). The savedinformation includes all information that is necessary to exactlyidentify the Web site at which the user was browsing and toautomatically return to that location later without further input fromthe user. Once the status information is saved, the client 1automatically disconnects from the modem pool 2 (step 503). The client 1then waits for a predetermined time interval T₁ (ten seconds, forexample) (step 504). At the expiration of the time interval T₁, theclient 1 determines whether an incoming call is still being received byattempting to detect a ring signal on the telephone line 29 (step 505).Detection of a ring signal would indicate that a third party is stillattempting to call in, since an on-hook condition after a Call Waitingsignal tells the Telephone Company Central Office telephone switch thatit is to transmit a ring signal. The client 1 further determines whetherall telephone extensions are on the hook (i.e., inactive, or closed)(step 506). This determination is made by sensing the impedance on thetelephone line 29. If no ring signal is detected and all extensions areon the hook, then the client 1 automatically redials the modem pool 2and resumes the previous browsing state based the status informationsaved earlier (step 507). If, however, either a ring signal is detectedor an extension is off the hook (active) (e.g., if another member of thehousehold had picked up an extension phone and had begun to dial), thenthe client 1 waits until that is not the case before re-establishing theconnection to the modem pool 2. Thus, whether the disruption was a CallWaiting interruption or a disruption from another person trying to makea call, the same mechanism gracefully handles the situation.

As mentioned above, it is assumed that the telephone service provided tothe home 15 includes Caller ID service. Note, however, that Caller IDservice is not essential to support the Call Waiting capabilities of thepresent invention. The present invention utilizes the Caller IDinformation to provide the user with information identifying the sourceof the incoming call. Referring now to FIG. 6, assume that an incomingtelephone call is received while the user is browsing the Web.Accordingly, the client 1 disconnects from the modem pool 2 after savingbrowsing status information. The client 1 then causes a message to bedisplayed to the user on the television set 12 indicating that anincoming call is being received (step 601). The client then waits forCaller ID information. This information is typically is received betweenthe first and second ring signal (step 601). If Caller ID information isreceived before the expiration of a preset time period, such as beforethe second ring signal (step 602), then the client 1 determines whetherthe phone number of the incoming call has previously been stored inmemory 23 with a corresponding name (step 603). If so, the namecorresponding to the source of the incoming call is retrieved frommemory 23 and displayed to the user in conjunction with the Call Waitingmessage (step 604). If no Caller ID information is received or if thereis no name corresponding to the incoming phone number stored in memory23, then a message is displayed to the user indicating that the name ofthe caller is unknown (step 608). If the user accepts the incoming callby picking up one of the telephone sets 10 within the predeterminednumber of rings, the routine ends (step 605). However, if the user doesnot accept the call, client 1 automatically answers the call.Specifically, the client 1 plays a recorded greeting to the caller (step606) and then digitally records any message the incoming caller choosesto leave (step 607). The message left by the incoming caller is alsoplayed to the user of the client 1 in real time as it is recorded, usingthe speaker of the television set 12 for audio output.

Referring now to FIG. 7, the next time the client 1 connects to theInternet, the client 1 automatically sends a request to appropriate“White Pages” database servers for the name of the source of the lasttelephone call (step 701), assuming Caller ID information was receivedfor that call. The request includes the telephone number provided by theCaller ID service. Such Web sites containing “White Pages” telephonedirectory information are well-known. The telephone directory Web siteallows the accessing party to search based on a given telephone numberor name. Accordingly, the client 1 automatically looks up the telephonenumber from the Caller ID information using the telephone directory Website (step 702). If the telephone directory Web site locates thetelephone number (step 703), then upon receiving the name, the client 1stores the telephone number and the corresponding name in memory 23 forfuture use (step 704). Hence, each time in the future an incoming callis received from that telephone number, the name of the calling party isautomatically retrieved from memory 23 and displayed to the user (FIG.6, step 604).

The present invention also includes a selective forwarding feature bywhich the user of the client 1 is automatically notified via e-mail ortelephone when an incoming telephone call is received from a specifiedsource, even if the user is at a geographic location different from thatof the client 1. The user initially selects a message forwarding optionand inputs an identity of a calling party to the client 1. The identitymay be specified in the form of a telephone number or a name. Numberbuttons on remote control 11 can be used to enter the digits of atelephone number. To enter alphabetical characters of a name, the usercan selects soft buttons within an image of a keyboard that is displayedon television set 12. Alternatively, the characters can be enteredthrough the use of a wireless keyboard. The user also selects aforwarding mode as either “e-mail,” “telephone,” or both and inputs adestination e-mail address and/or telephone number designating thelocation to which the forwarding message is to be sent.

FIG. 8 illustrates a routine by which the client 1 forward messages tothe user at a remote location. When an incoming call is received, thenif the user has selected the message forwarding option (step 801), theclient 1 determines whether the calling party identity specified by theuser matches the Caller ID information (step 802). If the user-specifiedidentity was provided as a name, the client 1 uses the identificationprocedures described above to determine if there is a match.Specifically, the client 1 determines whether the telephone number inthe Caller ID information is stored in memory 23 and, if so, whetherthere is a corresponding name stored.

If the Caller ID information does not match the user-specified calleridentity, the standard routine for handling incoming calls is performed(step 805). If, however, there is a match, then the client 1 waits untilthe line is clear (i.e., no incoming call is being received and allhandsets are on the hook) (step 803). When the line is clear, the client1 automatically dispatches a message to the location specified by theuser. The message may be a default message or a user-created message. Ifthe telephone mode was selected, the client 1 will automatically dialthe user-specified destination telephone number and play a pre-recordedmessage if the call is answered. Hence, using the above technique, theuser is notified immediately when a specified party calls, even when theuser is located away from the client 1.

The present invention also provides conventional e-mail capabilities.E-mail addressed to a WebTV™ user is stored in the WebTV™ server 5. Whene-mail addressed to the user is received by the server 5, the server 5signals this fact to the client 1 if the client 1 is presently connectedto the server 5. Upon receiving this signal, the client 1 provides anindication to the user that the user has e-mail. The indication isprovided in the form of a lighted LED (Light-Emitting Diode) built intothe housing of WebTV™ box 10, a text message displayed on television set12, or both. In one embodiment of the present invention, the client 1automatically dials out and connects to the WebTV™ server 5 at regularintervals or at specified times of the day to determine whether the userhas any new e-mail, and both downloads any e-mail into memory (e.g., RAM23) for fast retrieval and illuminates the LED.

Another feature of the present invention relates to reducing costsassociated with ISDN service. As mentioned above, the client 1 has botha standard telephone connection 29 a and an ISDN connection 29 b withthe server 5. It is well known that an ISDN connection permits fasterdata communication than a standard telephone connection according to thepresent state of the art. However, ISDN service tends to be moreexpensive than standard telephone service. Consequently, the presentinvention provides a means for reducing communications costs associatedwith accessing the Internet. Specifically, the client 1 keeps track ofthe time of day and routes communications through the ISDN connection 29b during hours which are not considered “prime time” for ISDN usage.However, the client 1 automatically directs communications through thestandard telephone connection 29 a during ISDN prime time, when ratesare most expensive.

In another aspect of the present invention, the client 1 automaticallydisconnects from the WebTV™ server 5 when no input from the user isreceived for a predetermined period of time. The current browsing statusis saved to memory 23 before disconnecting, as described above. Theconnection is automatically reestablished and the most recent browsingstatus is resumed as soon as the user enters any input which requiresaccess to the network. Hence, the user is not required to initiate aspecific log-in procedure in order to resume browsing.

Thus, a method is provided, in a client processing system coupled to aserver processing system, of managing communications between the clientand the server. Although the present invention has been described withreference to specific exemplary embodiments, it will be evident thatvarious modifications and changes may be made to these embodimentswithout departing from the broader spirit and scope of the invention asset forth in the claims. Accordingly, the specification and drawings areto be regarded in an illustrative rather than a restrictive sense.

What is claimed is:
 1. In a client system capable of connecting to aserver system over a network, wherein the client system can communicatewith the server system via any one of a plurality of communicationlinks, a method of selecting a communication link for communicating withthe server system, the method comprising the client system performingsteps for: identifying a first communication link available to theclient system for communicating with the server system, wherein thefirst communication link may be subject to a prime usage time period;identifying a second communication link available to the client systemfor communicating with the server system; determining whether the primeusage time period applies to the first communication link; and if theprime usage time period applies to the first communication link, thencommunicating over the second communication link.
 2. A method as definedin claim 1, wherein the first communication link comprises an ISDNconnection and the second communication link comprises a telephoneconnection.
 3. A method as defined in claim 1, wherein the firstcommunication link comprises an ISDN connection and the secondcommunication link comprises a cable television connection.
 4. A methodas defined in claim 1, wherein the first communication link comprises anISDN connection, and wherein the step for determining whether the primeusage time period applies to the first communication link comprises astep for determining the time of day, the prime usage time period beinga function of the time of day.
 5. A method as defined in claim 1,further comprising steps for: identifying a first data communicationrate associated with the first communication link; and identifying asecond data communication rate associated with the second communicationlink.
 6. A method as defined in claim 1, further comprising a step forcommunicating over the first communication link if the prime usage timeperiod does not apply to the first communication link.
 7. For a clientsystem capable of connecting to a server system over a network, whereinthe client system can communicate with the server system via any one ofa plurality of communication links, a computer program product carryingcomputer executable instructions that implement a method of selecting acommunication link for communicating with the server system, the methodcomprising the client system performing steps for: identifying a firstcommunication link available to the client system for communicating withthe server system, wherein the first communication link may be subjectto a prime usage time period; identifying a second communication linkavailable to the client system for communicating with the server system;determining whether the prime usage time period applies to the firstcommunication link; and if the prime usage time period applies to thefirst communication link, then communicating over the secondcommunication link.
 8. A computer program product as defined in claim 7,wherein the first communication link comprises an ISDN connection andthe second communication link comprises a telephone connection.
 9. Acomputer program product defined in claim 7, wherein the firstcommunication link comprises an ISDN connection and the secondcommunication link comprises a cable television connection.
 10. Acomputer program product as defined in claim 7, wherein the firstcommunication link comprises an ISDN connection, and wherein the stepfor determining whether the prime usage time period applies to the firstcommunication link comprises a step for determining the time of day, theprime usage time period being a function of the time of day.
 11. Acomputer program product as defined in claim 7, wherein the methodfurther comprises steps for: identifying a first data communication rateassociated with the first communication link; and identifying a seconddata communication rate associated with the second communication link.12. A computer program product as defined in claim 7, the method furthercomprising a step for communicating over the first communication link ifthe prime usage time period does not apply to the first communicationlink.
 13. In a client system capable of connecting to a server systemover a network, wherein the client system can communicate with theserver system via any one of a plurality of communication links, amethod of selecting a communication link for communicating with theserver system, the method comprising the client system performing actsof: associating first information, including a prime usage time period,with a first communication link that is available to the client system;associating second information with a second communication link that isavailable to the client system; examining the first informationassociated with the first communication link to determine whether theprime usage time period applies to the first communication link; andselecting the first communication link if the prime usage time perioddoes not apply to the first communication link.
 14. A method as definedin claim 13, wherein the first communication link comprises an ISDNconnection and the second communication link comprises a telephoneconnection.
 15. A method as defined in claim 13, wherein the firstcommunication link comprises an ISDN connection and the secondcommunication link comprises a cable television connection.
 16. A methodas defined in claim 13, wherein the first communication link comprisesan ISDN connection, and wherein the prime usage time period is afunction of the time of day, the method further comprising an act ofkeeping track of the time of day.
 17. A method as defined in claim 13,wherein the first information comprises a data communication rate forthe first communication link, and wherein the second informationcomprises a data communication rate for the second communication link.18. A method as recited in claim 13, further comprising acts of:receiving either no input or no input requiring access to the networkfor at least a predetermined period of time; saving a most recentcommunication status for the selected communication link; anddisconnecting the selected communication link from the server system.19. A method as recited in claim 18, further comprising acts of:receiving input that requires access to the network; and reconnectingwith the server system based on the most recent communication status andwithout requiring further input from the user.
 20. A method as recitedin claim 13, further comprising an act of selecting the secondcommunication link if the prime usage time period applies to the firstcommunication link.
 21. For a client system capable of connecting to aserver system over a network, wherein the client system can communicatewith the server system via any one of a plurality of communicationlinks, a computer program product carrying computer executableinstructions that implement a method of selecting a communication linkfor communicating with the server system, the method comprising theclient system performing acts of: associating first information,including a prime usage time period, with a first communication linkthat is available to the client system; associating second informationwith a second communication link that is available to the client system;examining the first information associated with the first communicationlink to determine whether the prime usage time period applies to thefirst communication link; and selecting the first communication link ifthe prime usage time period does not apply to the first communicationlink.
 22. A computer program product as defined in claim 21, wherein thefirst communication link comprises an ISDN connection and the secondcommunication link comprises a telephone connection.
 23. A computerprogram product as defined in claim 21, wherein the first communicationlink comprises an ISDN connection and the second communication linkcomprises a cable television connection.
 24. A computer program productas defined in claim 21, wherein the first communication link comprisesan ISDN connection, and wherein the prime usage time period is afunction of the time of day, the method further comprising an act ofkeeping track of the time of day.
 25. A computer program product asdefined in claim 21, wherein the first information comprises a datacommunication rate for the first communication link, and wherein thesecond information comprises a data communication rate for the secondcommunication link.
 26. A computer program product as recited in claim21, the method further comprising acts of: receiving either no input orno input requiring access to the network for at least a predeterminedperiod of time; saving a most recent communication status for theselected communication link; and disconnecting the selectedcommunication link from the server system.
 27. A computer programproduct as recited in claim 26, the method further comprising acts of:receiving input that requires access to the network; and reconnectingwith the server system based on the most recent communication status andwithout requiring further input from the user.
 28. A computer programproduct as recited in claim 21, the method further comprising an act ofselecting the second communication link if the prime usage time periodapplies to the first communication link.